[NEOE].[UP_FASHION_FI_ADOCU_ASSET_I].sql 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392
  1. CREATE PROCEDURE [NEOE].[UP_FASHION_FI_ADOCU_ASSET_I]
  2. (
  3. @CD_COMPANY NVARCHAR(7) = '1000'
  4. , @DOCU_TYPE CHAR(4) = 'BOS1'
  5. , @SettleList SettleComplete READONLY
  6. , @RESULT INT OUT
  7. )
  8. AS
  9. /* FOR TEST
  10. DECLARE @CD_COMPANY NVARCHAR(7)
  11. DECLARE @Docu_Type CHAR(4)
  12. DECLARE @SettleList SettleComplete
  13. SET @CD_Company = '1000'
  14. SET @Docu_Type = 'BOS2'n
  15. insert into @SettleList
  16. VALUES('1898700338','2019-05-31',-454700.0000,6230.0000,62295.0000,386175.0000)
  17. */
  18. /*
  19. 기존 5자리 계정코드에서 8자리 코드로 변경 2019 06 12
  20. 30310=>21102010 : 미지급금(거래처)
  21. 50100=>51102010 : 상품매출
  22. 30500=>21604010 : 부가세예수금
  23. 51100=>51107010 : 수수료매출
  24. 51102010<=>21604010
  25. */
  26. /*
  27. 담당자 사번 변경
  28. 자금예정일자 추가
  29. */
  30. DECLARE @CD_PC NVARCHAR(7)
  31. DECLARE @CD_WDEPT NVARCHAR(12)
  32. DECLARE @ID_WRITE NVARCHAR(20)
  33. DECLARE @CD_CC VARCHAR(6) --추가2019 07 17
  34. DECLARE @UCD_MNG1 VARCHAR(3) --추가2019 07 17
  35. DECLARE @ROW_ID_PREFIX CHAR(2)
  36. DECLARE @NM_ITEM_DESC NVARCHAR(20)
  37. DECLARE @DT_END VARCHAR(8) --추가 2020 02 20
  38. SET @CD_PC = '1000'
  39. --SET @CD_WDEPT = '1102'
  40. --SET @ID_WRITE = '2017050102'
  41. SET @CD_WDEPT = '15000' --변경 2019 07 17
  42. SET @ID_WRITE = '2019071012'--변경 2019 07 17 2020 02 20 변경
  43. SET @CD_CC = '500001'--추가2019 07 17
  44. SET @UCD_MNG1 = '890'--추가2019 07 17
  45. SET @DT_END = CONVERT(CHAR(6), GETDATE(), 112) + '15'--추가 2020 02 20 당월 15일로 세팅
  46. BEGIN
  47. IF ISNULL(@DOCU_TYPE, 'BOS1') = 'BOS1'
  48. BEGIN
  49. SET @ROW_ID_PREFIX = 'IM'
  50. SET @NM_ITEM_DESC = '월 상품판매수수료'
  51. END
  52. ELSE
  53. BEGIN
  54. SET @ROW_ID_PREFIX = 'ID'
  55. SET @NM_ITEM_DESC = '월 배송비'
  56. END
  57. BEGIN TRY
  58. IF @@TRANCOUNT > 0 BEGIN
  59. SET @RESULT = @@TRANCOUNT
  60. END
  61. INSERT INTO NEOE.FI_ADOCU (ROW_ID, ROW_NO, NO_TAX, CD_PC, CD_WDEPT
  62. , NO_DOCU, NO_DOLINE, CD_COMPANY, ID_WRITE, CD_DOCU
  63. , DT_ACCT, ST_DOCU, TP_DRCR, CD_ACCT, AMT
  64. , CD_PARTNER, NM_PARTNER, TP_JOB, CLS_JOB, ADS_HD
  65. , NM_CEO, DT_START,DT_END, AM_TAXSTD, AM_ADDTAX, TP_TAX
  66. , NO_COMPANY, NM_NOTE, CD_BIZAREA, CD_DEPT, CD_CC, NO_DEPOSIT--추가2019 07 17
  67. , CD_BANK,UCD_MNG1, CD_MNG, TP_DOCU, NO_ACCT, TP_GUBUN--추가2019 07 17
  68. , NM_ITEM1, NM_SIZE1, AM_SUPPLY1, AM_TAX1, NM_PUMM
  69. , CD_MNGD1, CD_MNGD2, CD_MNGD3, CD_MNGD4, CD_MNGD5
  70. , CD_MNGD6, CD_MNGD7, CD_MNGD8, NM_MNGD1, NM_MNGD2
  71. , NM_MNGD3, NM_MNGD4, NM_MNGD5, NM_MNGD6, NM_MNGD7
  72. , NM_MNGD8 )
  73. SELECT @ROW_ID_PREFIX + S.SettleDate + REPLICATE('0', 5 - LEN(ROW_NO)) + CAST(ROW_NO AS VARCHAR(100)) AS ROW_ID
  74. , ROW_NUMBER() OVER(PARTITION BY S.BizNumber, S.SettleDate ORDER BY S.BizNumber, S.CD_ACCT) AS ROW_NO
  75. , CASE WHEN S.CD_ACCT = '21604010'/*51102010*/ THEN 'T' + S.SettleDate + REPLICATE('0', 5 - LEN(ROW_NO)) + CAST(ROW_NO AS VARCHAR(10)) ELSE '*' END AS NO_TAX
  76. , @CD_PC AS CD_PC
  77. , @CD_WDEPT AS CD_WDEPT
  78. , @ROW_ID_PREFIX + S.SettleDate + REPLICATE('0', 5 - LEN(ROW_NO)) + CAST(ROW_NO AS VARCHAR(100)) AS NO_DOCU
  79. , ROW_NUMBER() OVER(PARTITION BY S.BizNumber, S.SettleDate ORDER BY S.BizNumber, S.CD_ACCT) AS NO_DOLINE
  80. , @CD_PC AS CD_COMPANY
  81. , @ID_WRITE AS ID_WRITE
  82. , '11' AS CD_DOCU
  83. , S.SettleDate AS DT_ACCT
  84. , '1' AS ST_DOCU
  85. , AC.TP_DRCR
  86. , S.CD_ACCT
  87. , ROUND(AMT, 0) AS AMT
  88. , P.CD_PARTNER
  89. , P.LN_PARTNER AS NM_PARTNER
  90. , CONVERT(NVARCHAR(40), P.TP_JOB) AS TP_JOB
  91. , CONVERT(NVARCHAR(40), P.CLS_JOB) AS CLS_JOB
  92. , P.DC_ADS1_H AS ADS_HD
  93. , P.NM_CEO
  94. , CASE WHEN S.CD_ACCT = '21604010' THEN S.SettleDate ELSE '' END AS DT_START
  95. ,@DT_END AS DT_END--추가 2020 02 20
  96. , CASE WHEN S.CD_ACCT = '21604010' THEN C.SupAmount ELSE 0 END AS AM_SUPPLY1
  97. , CASE WHEN S.CD_ACCT = '21604010' THEN S.AMT ELSE 0 END AS AM_ADDTAX
  98. , CASE WHEN S.CD_ACCT = '21604010' THEN '11' ELSE '' END AS TP_TAX
  99. , CASE WHEN S.CD_ACCT = '21604010' THEN P.NO_COMPANY ELSE '' END AS NO_COMPANY
  100. , CASE WHEN @Docu_Type = 'BOS1' THEN '[패션]'+CAST(MONTH(SettleDate) AS VARCHAR)+ '월 상품판매대금정산//'+ P.LN_PARTNER
  101. WHEN @Docu_Type = 'BOS2' THEN '[패션]'+CAST(MONTH(SettleDate) AS VARCHAR)+ '월 배송비정산//'+ P.LN_PARTNER END AS NM_NOTE --적요 수정 이선미
  102. , @CD_PC AS CD_BIZAREA
  103. , @CD_WDEPT AS CD_DEPT
  104. , @CD_CC AS CD_CC --추가2019 07 09
  105. --, CASE WHEN S.CD_ACCT = '30500' THEN P.NO_DEPOSIT ELSE '' END AS NO_DEPOSIT
  106. , '' AS NO_DEPOSIT
  107. --, CASE WHEN S.CD_ACCT = '30500' THEN P.CD_BANK ELSE '' END AS CD_BANK
  108. , '' AS CD_BANK
  109. , @UCD_MNG1 AS UCD_MNG1 --추가2019 07 09
  110. , CASE WHEN S.CD_ACCT = '21604010' THEN 'T' + S.SettleDate + REPLICATE('0', 5 - LEN(ROW_NO)) + CAST(ROW_NO AS VARCHAR(10)) ELSE '' END AS CD_MNG
  111. , 'N' AS TP_DOCU
  112. , 0 AS NO_ACCT
  113. , '3' AS TP_GUBUN
  114. , RIGHT(LEFT(S.SettleDate,6), 2) + @NM_ITEM_DESC AS NM_ITEM1
  115. , '' AS NM_SIZE1
  116. , CASE WHEN S.CD_ACCT = '21604010' THEN C.SupAmount ELSE 0 END AS AM_SUPPLY1
  117. , CASE WHEN S.CD_ACCT = '21604010' THEN S.AMT ELSE 0 END AS AM_TAX1
  118. , CASE WHEN @Docu_Type = 'BOS1' THEN '[패션]'+CAST(MONTH(SettleDate) AS VARCHAR)+ '월 상품판매대금정산//'+ P.LN_PARTNER
  119. WHEN @Docu_Type = 'BOS2' THEN '[패션]'+CAST(MONTH(SettleDate) AS VARCHAR)+ '월 배송비정산//'+ P.LN_PARTNER END AS NM_PUMM --적요 수정
  120. , CASE WHEN AC.ST_MNG1 = 'C' THEN CASE WHEN AC.CD_MNG1 = 'A02' THEN '6000' ELSE '' END ELSE '' END AS CD_MNGD1
  121. , CASE WHEN AC.ST_MNG2 = 'C' THEN CASE WHEN AC.CD_MNG2 = 'A02' THEN '6000' ELSE '' END ELSE '' END AS CD_MNGD2
  122. , CASE WHEN AC.ST_MNG3 = 'C' THEN CASE WHEN AC.CD_MNG3 = 'A02' THEN '6000' ELSE '' END ELSE '' END AS CD_MNGD3
  123. , CASE WHEN AC.ST_MNG4 = 'C' THEN CASE WHEN AC.CD_MNG4 = 'A02' THEN '6000' ELSE '' END ELSE '' END AS CD_MNGD4
  124. , CASE WHEN AC.ST_MNG5 = 'C' THEN CASE WHEN AC.CD_MNG5 = 'A02' THEN '6000' ELSE '' END ELSE '' END AS CD_MNGD5
  125. , CASE WHEN AC.ST_MNG6 = 'C' THEN CASE WHEN AC.CD_MNG6 = 'A02' THEN '6000' ELSE '' END ELSE '' END AS CD_MNGD6
  126. , CASE WHEN AC.ST_MNG7 = 'C' THEN CASE WHEN AC.CD_MNG7 = 'A02' THEN '6000' ELSE '' END ELSE '' END AS CD_MNGD7
  127. , CASE WHEN AC.ST_MNG8 = 'C' THEN CASE WHEN AC.CD_MNG8 = 'A02' THEN '6000' ELSE '' END ELSE '' END AS CD_MNGD8
  128. , CASE WHEN AC.ST_MNG1 = 'C' THEN CASE WHEN AC.CD_MNG1 = 'A02' THEN '패션사업본부' ELSE '' END ELSE '' END AS NM_MNGD1
  129. , CASE WHEN AC.ST_MNG2 = 'C' THEN CASE WHEN AC.CD_MNG2 = 'A02' THEN '패션사업본부' ELSE '' END ELSE '' END AS NM_MNGD2
  130. , CASE WHEN AC.ST_MNG3 = 'C' THEN CASE WHEN AC.CD_MNG3 = 'A02' THEN '패션사업본부' ELSE '' END ELSE '' END AS NM_MNGD3
  131. , CASE WHEN AC.ST_MNG4 = 'C' THEN CASE WHEN AC.CD_MNG4 = 'A02' THEN '패션사업본부' ELSE '' END ELSE '' END AS NM_MNGD4
  132. , CASE WHEN AC.ST_MNG5 = 'C' THEN CASE WHEN AC.CD_MNG5 = 'A02' THEN '패션사업본부' ELSE '' END ELSE '' END AS NM_MNGD5
  133. , CASE WHEN AC.ST_MNG6 = 'C' THEN CASE WHEN AC.CD_MNG6 = 'A02' THEN '패션사업본부' ELSE '' END ELSE '' END AS NM_MNGD6
  134. , CASE WHEN AC.ST_MNG7 = 'C' THEN CASE WHEN AC.CD_MNG7 = 'A02' THEN '패션사업본부' ELSE '' END ELSE '' END AS NM_MNGD7
  135. , CASE WHEN AC.ST_MNG8 = 'C' THEN CASE WHEN AC.CD_MNG8 = 'A02' THEN '패션사업본부' ELSE '' END ELSE '' END AS NM_MNGD8
  136. FROM(
  137. SELECT ROW_NUMBER() OVER(ORDER BY BizNumber) AS ROW_NO
  138. , BizNumber
  139. , REPLACE(SettleDate,'-','') AS SettleDate
  140. ,[상품매출액] as '51102010'
  141. ,[예수부가세] as '21604010'
  142. ,[수수료매출] as '51107010'
  143. ,[미지급금] as '21102010'
  144. -- , CAST(ROUND((OrderSettleAmount) * -1 ,0) AS numeric(19, 4)) AS '51102010'--상품매출액
  145. -- , CAST(ROUND((OrderSettleAmount + CouponPrice - CouponAllotment) * -1 ,0) AS numeric(19, 4)) AS '51102010'
  146. -- , CAST(ROUND(MarginSettleAmount -( CouponPrice- CouponAllotment), 0) - ROUND((MarginSettleAmount -( CouponPrice- CouponAllotment)) / 1.1, 0) AS numeric(19,4)) AS '21604010'--예수부가세
  147. -- , CAST(ROUND(MarginSettleAmount - CouponAllotment, 0) - ROUND((MarginSettleAmount - CouponAllotment) / 1.1, 0) AS numeric(19,4)) AS '21604010'
  148. -- , CAST(ROUND(((MarginSettleAmount -( CouponPrice- CouponAllotment)) / 1.1), 0) AS numeric(19, 4)) AS '51107010'--수수료매출
  149. -- , CAST(ROUND(((MarginSettleAmount - CouponAllotment) / 1.1), 0) AS numeric(19, 4)) AS '51107010'
  150. -- , CAST((Amount) AS numeric(19, 4)) AS '21102010'
  151. FROM @SettleList
  152. --WHERE OrderSettleAmount > 0
  153. ) AS L
  154. UNPIVOT
  155. (
  156. AMT FOR CD_ACCT IN ([21604010],[51102010],[51107010],[21102010])
  157. ) AS S
  158. CROSS APPLY(
  159. SELECT [수수료매출] AS SupAmount
  160. --SELECT CAST(ROUND(((MarginSettleAmount -( CouponPrice- CouponAllotment)) / 1.1), 0) AS numeric(19, 4)) AS SupAmount
  161. FROM @SettleList T
  162. WHERE T.BizNumber = S.BizNumber
  163. AND REPLACE(T.SettleDate,'-','') = S.SettleDate
  164. ) C
  165. INNER JOIN [NEOE].[MA_PARTNER] P ON (S.BizNumber = P.NO_COMPANY AND P.CD_COMPANY = '1000')
  166. LEFT OUTER JOIN NEOE.FI_ACCTCODE AC ON (AC.CD_ACCT = S.CD_ACCT AND AC.CD_COMPANY = '1000')
  167. WHERE ( @DOCU_Type = 'BOS2' AND s.CD_ACCT IN (21102010, 51102010) ) OR
  168. ( @DOCU_Type = 'BOS1' AND s.CD_ACCT IN (21102010, 21604010,51102010,51107010) )
  169. /*
  170. 30310:미지급금(거래처)
  171. 50100:상품매출
  172. 30500:부가세예수금
  173. 51100:수수료매출
  174. ★코드변경됨★
  175. 21102010 미지급금(거래처)
  176. 21604010 예수부가세
  177. 51102010 상품매출액
  178. 51107010 수수료매출
  179. 상품판매대금정산과 배송비 정산 나오는 항목 수정
  180. 2019 05 30
  181. */
  182. IF @@ERROR > 0
  183. BEGIN
  184. SET @RESULT = -10004
  185. END
  186. ELSE
  187. BEGIN
  188. SET @RESULT = 10001
  189. END
  190. END TRY
  191. BEGIN CATCH
  192. SET @RESULT = -10004
  193. END CATCH
  194. END
  195. RETURN